# Vimb
The Vi-like Webbrowser

## 1. How to use this config
* Simply copy my all files within my `standard` and `private` folders into your `~/.config/vimb` directory (create it, if it doesn't already exit).
* Start up vimb as usual
* The two `*.desktop` files can be moved to `~/.local/share/applications/` or `/usr/share/applications/`, so vimb is accessable from menu's.
If you encounter any issues, change some values in your `~/.config/vimb/config`. See below for more help on each setting.


## 2. Features of the standard config
1. [DDG-HTML](https://duckduckgo.com/html) homepage
2. Preset of common fonts (Dingbats, LucidiaTypewriter, Liberation Mono, Liberation Sans, Liberation Serif)
3. Multicolored statusbar (http: RED, https: GREEN, invalid-https: ORANGE)
4. Autohiding inputbar, colored for inputerrors (YELLOW)
5. Smooth-Scrolling
6. Enables images, auto-rotating images, auto-resizing images, background-images, WebAudio, WebGL, WebInspector, 
7. Spellchecking (english, german)
8. Preset Useragent (Ubuntu, 32-bit, Firefox 40.0)
9. Semi-secure (no SSL-forcing, accepting cookies from current website, disabled prefetching, forbid insecure content, disabled JAVA, restricted javascript), See below for explaination of each item
10. Dark css-style

## 3. Features of private-mode
Same as [above](#2-features-of-the-standard-config), except for:
1. [Empty](about:empty) homepage
2. Overall purple-ish UI
3. Useragent set to "0" (website has to assume)
4. SSL-forcing
5. Cookies accepted from current website (to ensure usability), will be deleted as soon as user leaves website
6. Private browsing enabled, history disabled
7. Disabled pagecache

## 4. Addition Notes
Eventhough it's currently rather lacking and incomplete, the [Vimb-Manual](http://fanglingsu.github.io/vimb/man.html) can often be helpful.
The hotkey-portion is a **must read**, if you want to use vimb effectively.


## 5. Settings
* set home-page
Sets the hompage (first website, that will be displayed when vimb is launched. reachable with [gh])

* set fullscreen
Launches vimb in fullscreen-mode

* set defaultencoding
Sets the type of [text-encoding](https://en.wikipedia.org/wiki/Character_encoding) ([UTF-8](https://en.wikipedia.org/wiki/UTF-8) recommended for best compatibility).

* set fontsize
Sets the default font-size for every website. Not defined to allow website to decide font-sizes (forcing one could potentially break the website's functionality & design).

* set minimumfontsize
Sets the minimum font-size allowed by any website.

* set monofontsize
Sets the default size for mono-fonts.

* set defaultfont
Sets the default font for any text displayed.

* set cursivfont
Sets the default font for any cursive text.

* set monofont
Sets the default font for any mono text.

* set sansfont
Sets the default font for any sans text.

* set seriffont
Sets the default font for any serif text.

* set images
Tells vimb, if it should display images or not.

* set auto-shrink-images
Tells vimb, if it should scale images to better fit the window.

* set respect-image-orientation
Tells vimb, if it is allowed to rotate images or not.

* set resizable-text-areas
Tells vimb, if it is allowed to resize text or not.

* set statusbar
Displays statusbar, if set to 'true'.

* set status-color-bg
Sets color of the statusbar for non-ssl pages (http).

* set status-color-fg
Sets fontcolor of the statusbar for non-ssl pages (http).

* set status-font
Sets the font of the statusbar for non-ssl pages (http).

* set status-ssl-color-bg
Sets color of the statusbar for ssl pages (https).

* set status-ssl-color-fg
Sets fontcolor of the statusbar for ssl pages (https).

* set status-ssl-font
Sets the font of the statusbar for ssl pages (https).

* set status-sslinvalid-color-bg
Sets color of the statusbar for invalid ssl pages (https).

* set status-sslinvalid-color-fg
Sets fontcolor of the statusbar for invalid ssl pages (https).

* set status-sslinvalid-font
Sets the font of the statusbar for invalid ssl pages (https).

* set input-autohide
Tells vimb, if it should hide the inputbar, if not needed.

* set input-bg-normal
Sets color of inputbar.

* set input-fg-normal
Sets fontcolor of inputbar.

* set input-font-normal
Sets font of inputbar.

* set input-bg-error
Sets color of inputbar, when inputerror occurs.

* set input-fg-error
Sets fontcolor of inputbar, when inputerror occurs.

* set input-font-error
Sets font of inputbar, when inputerror occurs.

* set frame-flattening
??????????????????????

* set print-backgrounds
Tells vimb, if background-images of websites should be shown or not.

* set stylesheet
Enables stylesheets if set to 'true' and if available.

* set accelerated-compositing
Enables hardware acceleration for compositing, if set to 'true'(Can increase performance).

* set smooth-scrolling
Enables smooth scrolling, if set to 'true'.

* set spell-checking
Enables spellchecking, when writing texts, if set to 'true'.

* set spell-checking-languages
Sets languages for spellchecking.

* set useragent
Sets an useragent (Useful, if websites format wrong or show mobile-versions).

* set strict-focus
Allows javascript to sets focus if set to 'true'.

* set scripts
Enables javascript if set to 'true' (Seriously breaks most websites, if set to 'false').

* set private-browsing
Enables "Privat Browsing", if set to 'true': Will not generate history.

* set proxy
Sets a proxyserver for vimb to connect to.

* set strict-ssl
Forces "https-websites" to only display/use ssl-content (disabled, because it breaks multiple websites).

* set cookie-accept
Sets which websites are allowed to set cookies (always, origin, never). Can break some services, if set to 'never'.

* set cookie-expire-time
Sets expire-time of cookies.

* set dns-prefetching
Loads wesite's contents in the background, even before visiting them. Disabled, because in theory it could cause some legal issues in some parts of the world (eg: Germany).

* set insecure-content-run
Allows to run insecure content if set to 'true'.

* set insecure-content-show
Allows to display insecure content if set to 'true'.

* set plugins
Enables webplugins, if set to 'true'.

* set webaudio
Enables the "WebAudio" plugin, if set to 'true'.

* set webgl
Enables the "WebGL" plugin, if set to 'true'.

* set webinspector
Enables the WebInspector, if set to 'true'.

* set editor-command
Sets the command for opening a texteditor if needed.

* set media-playback-allows-inline
??????????????????????????????????

* set media-playback-requires-user-gesture
Only plays mediacontent, if user clicks on/hoovers over it.

* set media-stream
???????????????????

* set mediasource
?????????????????

* set java-applet
Enables the Java-Runtime plugin, if set to 'true' (disabled for security reasons).

* set javascript-can-access-clipboard
Allows javascript to manipulate the clipboard (disabled by default for spam-protection. Enable it, if it breaks any service).

* set javascript-can-open-windows-automatically
Allows javascript to open new browser-windows (disabled by default for spam-protection. Enable it, if it breaks any service).

* set download-command
Sets the command for downloading files.

* set download-use-external
Uses external application for downloads, if set to 'true'.

* set download-path
Sets the path, where downloaded files are stored.

* set dom-paste
????????????????

* set history-max-items
Sets a maximum for history-items (undefined for "no limit").

* set maximum-cache-size
Sets maximum cache size vimb is allowed to use (depending on hardware, can massively influence experience).

* set pagecache
Enables vimb to save websites in cache, if set to 'true' (can speed up browsing).


## 6. To-Do
* Figure out what `set frame-flattening` does (line 119-120)
* Figure out what `set media-playback-allows-inline` does (line 188-189)
* Figure out what `set media-stream` does (line 194-195)
* Figure out what `set mediasource` does (line 197-198)
* Figure out what `set dom-paste` does (line 218-219)
* Improve `style.css` to work better with any website (individual ones?)
* Figure out why youtube is so awfully slow (only if logged in)
